stage3day2section4-5
Section4:畳み込みニューラルネットワークの概念
畳み込みニューラルネットワーク(convolutional neural network:CNN)
畳み込み層・プーリング層を繰り返し
最後に全結合層、という構成の順伝播型ニューラルネットワーク
次元的なつながりのあるデータなら適応できる範囲が広い
特徴
人手による特徴抽出を必要としない、CNNが勝手に抽出してくれる。
出力と教師データを比較(誤差関数)
それを元に重みを調整していく
学習とは、重みを最適化=誤差関数最小化、すること
画像認識などでよく活用されている。
ヨビノリのyoutubeが分かりやすい。
https://www.youtube.com/watch?v=xzzTYL90M8s
畳み込み層
1.バイアス フィルターを掛けたあと、bを足す
2.パティング フィルターを掛ける前に画像の周囲に行や列を足す。
足されたマスには様々な数値(0や隣のマスの数値)を入れる
3.ストライド
Maxプーリング
多少、位置がずれても同じ特徴を拾う 頑健性(ロバスト)
確認テスト
答え
パティング1なので入力画像は周囲に1づつ増えるので6+(1x2)となり8x8
2x2のフィルタを
左隅から右へ1づつずらしながら右隅まで7
左上から下へ1づつずらしながら左隅まで7
なので7x7の出力画像となる
実装演習
2_6_simple_convolution_network_after.ipnb
*正答率トレーニング出力部分は長いのでトリムしました。
Section5:最新のCNN
AlexNetについて概要
*2021年現在、最新じゃない
ILSVRC 2012に参加し、2位に10%以上の差をつけて優勝
・Fratten:横一列にならべるだけ。(初期のNNでよく使われる手法)
⇒13✕13✕256⇒43264。
・GlobalMaxPooling 最大値を使う
256レイヤいるので、それぞれの大きなモノを1つづつとる⇒256コ
・GlobalAvgPooling 平均値を使う
256レイヤいるので、それぞれの平均を1つづつとる⇒256コ
なぜかわからないが
GlobalMaxPooling、GlobalAvgPoolingは、Frattenよりも性能がいい